package com.zjl.redis.第05章_redis的多环境部署;

/**
 *
 * 1.查看集群槽位的分配情况 可以查到每台机器的 ID (每个redis实例启动后都会随机生成一个40位的runid)
 *  redis-cli -a 密码 --cluster check 集群随便某个ip:端口
 *
 *
 * 2.扩展新的 master 的节点 命令
 * redis-cli  -a 密码  --cluster add-node 新加入的ip:端口 介绍人的ip:端口
 *
 * 3.但暂时没有被分派到槽号 slot ，相当于现在啥都不存储
 * 槽号 重新分配 命令
 *  方式一
 *      redis-cli  -a 密码  --cluster reshard 集群随便某个ip:端口
 *   接下来会让你填 需要分配的槽位数量（1-16384）    16384/master 数量
 *   让你填被分配者的  ID (每个redis实例启动后都会随机生成一个40位的runid)
 *   让你确定是否分配  yes
 *  方式二
 *      redis-cli -a 密码 --cluster reshard 集群随便某个ip:端口
 *          --cluster-from 原masterID1,原masterID2 --cluster-to 新masterID --cluster-slots 1024(槽位数量)
 *
 * --cluster-from：表示slot目前所在的节点的node ID，多个ID用逗号分隔
 *
 * --cluster-to：表示需要新分配节点的node ID（貌似每次只能分配一个）
 *
 * --cluster-slots：分配的slot数量
 *
 *
 * 分配逻辑是：其他几台 找一定数量的槽位 分给他，这样的话，新加的那一台槽位会是几个区间
 * 为什么新的 master 是3个新的区间，以前的还是连续?
 *      重新分配成本太高，所以前3家各自匀出来一部分，
 *      从其他几个个旧节点分别匀出1364（三台变四台的例子）个坑位给新节点master
 *
 * 4.分配从节点  ID (每个redis实例启动后都会随机生成一个40位的runid)
 * redis-cli  -a 密码 --cluster add-node 新加入的ip:端口 主节点ip:端口 --cluster-slave --cluster-master-id 主节点ID
 *
 *
 *
 */
public class C7_集群扩容命令 {
    public static void main(String[] args) {

    }
}
